﻿using System.Linq.Expressions;
using DomenModel;
using System;
using System.Collections.Generic;


namespace Model.Repositories.Interfaces
{
    public interface IOrderCrud : ICrud<Order>
    {
        List<Order> GetListForPagination(int page, int itemsOnPage, bool descending, string userName);
        List<Order> GetListForPagination(int page, int itemsOnPage, Expression<Func<Order, string>> predicate, bool descending);
        List<Order> GetListForPaginationWithFilter(int page, int itemsOnPage, Expression<Func<Order, bool>> predicateListSelectedField, Expression<Func<Order, string>> predicateSortBy, bool descending);
        long GetCountOfOrders();
        long GetCountOfOrders(string userName);
        long GetCountOfOrders(Expression<Func<Order, bool>> predicate);
        
        List<Order> GetOrderList(string userName);

    }
}
